package leedcode_path.stringleedcode;

import com.sun.source.tree.IfTree;

public class 找出字符串中第一个匹配项的下标 {
    /*
    * 给你两个字符串 haystack 和 needle ，请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标（下标从 0 开始）。如果 needle 不是 haystack 的一部分，则返回  -1 。



示例 1：

输入：haystack = "sadbutsad", needle = "sad"
输出：0
解释："sad" 在下标 0 和 6 处匹配。
第一个匹配项的下标是 0 ，所以返回 0 。
示例 2：

输入：haystack = "leetcode", needle = "leeto"
输出：-1
解释："leeto" 没有在 "leetcode" 中出现，所以返回 -1 。*/
    public int strStr(String haystack, String needle) {
//        暴力：
        int m=haystack.length();
        int n=needle.length();
        int i=0;
        int j=0;
        while (i<m-n+1){
            if (n==0) return 0;
            if (n>m) return -1;
//            找第一个元素
            while (i<m-n+1&&haystack.charAt(i)!=needle.charAt(j)){
                i++;
            }
            int flag=i;
            if (i==m-n+1){
                return -1;
            }

            while (i<m&&j<n&&haystack.charAt(i)==needle.charAt(j)){
                i++;
                j++;
            }
            if (j==n){
                return i-j;
            }else {
                j=0;
                i=flag+1;
            }


        }
        return -1;



}
}

